Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Search our knowledge base, curated by global Support, for answers ranging from account questions to troubleshooting error messages.
You can access Qlik Sense demo apps from https://demos.qlik.com/.
If you are looking for real-life business examples, our Qlik Gallery hosts a platform meant for sharing apps, outcomes, and ideas. It is not restricted to Qlik-provided demos and mostly consists of customer examples.
If you are looking to download demo apps:
It is not possible to set up a Microsoft Office 365 email provider with OAuth 2.0 authentication.
The HAR file shows this message in Network:
{connectionFailed: true, message: "Error during email request", success: false}
connectionFailed: true
message: "Error during email request"
success: false
Configure the Mail.Send permission as it is described in Configuring a Microsoft 365 email provider using OAuth2.
This problem occurs when the Mail.Send permission has not been configured in the app registration.
More information about the Mail.Send permission can be found in Application permission to Microsoft Graph (learn.microsoft.com).
When embedding a sheet in an iFrame, the "full screen" toggle button for Qlik Sense native chart objects is missing. This feature is present at the sheet level in the hub
Full Screen toggle button is available at the sheet level in the hub
The same feature is missing, once a sheet is added in an iFrame (Single Configurator)
This is a known limitation.
An improvement task has been created (Jira task VIZ-103) and an idea is available on our Ideation Platform.
To check the current status or to add your vote, head over to the idea: full screen for iframe and embed
QB-4967
VIZ-103
When changing the name of a dataset, the source name still stays the same. This can be seen by uploading a “firstname.qvd" and renaming it to “secondname.qvd”.
The dataset's detail will show "firstname.qvd" as the source.
As a consequence:
Trying to load “FROM [lib://DataFiles/secondname.qvd]” will produce a "(Connector error: File not found)" error.
This is not a defect, it's how the product is designed.
A dataset represents a data resource with its properties such as name. The value of that is that you are able to use more user-friendly names of datasets without having to change the source names, which can be useful when the dataset is pointing to a database table for instance.
In the future, there is a plan to add the possibility of calling the name of the datasets in the script.
Scripts need to be exported using the Qlik Sense Engine APIs.
The Engine API and the Capability API both have a method/function called GetScript() that will allow the app script to be exported. Once the script is accessed, it can be saved to disc, for example, a folder that is perhaps monitored by a change control system. The Engine API can be found here and the Capability API can be found here. The following are examples of both APIs:
Engine API:
IAppIdentifier foundAppIdentifier = _location.AppWithId("....appId....");
IApp app = _location.App(foundAppIdentifier);
string script = app.GetScript();
Console.WriteLine(script);
Capability API:
var app = qlik.openApp("....appId....");
app.getScript().then( function(script){
console.log(script);
});
Get started with APIs on Windows
GetScript Method (Engine)
getScript method (Capability API)
Qlik Sense: call Qlik Sense Engine API with Python
Qlik Sense Repository API/Engine API(Enigma.js) example with JWT authentication: duplicate/scramble/export
Qlik Sense: Getting started with the .NET SDK
When using Qlik REST connector to load data from API sources that return JSON or XML response, sometimes a huge data model with many tables is returned although the response contains only a single table.
For example, the following JSON message is parsed into 5 single-row tables instead of one table with 5 rows:
Environment:
The JSON response has a "nested" structure, i.e each data record is stored as a separated JSON object, which is not member of an array.
Qlik REST connector applies a standard strategy for parsing JSON response:
As a result, nested JSON response is parsed as multiple tables instead of a single flat table. You can find the same strategy in other JSON parsing tool, such as http://json2table.com/.
The same logic applies to nested XML responses.
Qlik REST connector does not yet support loading JSON/ XML responses with nested structure. There is an ongoing improvement request to support this structure in future releases of the connector.
Meanwhile, please consider the following work-around solution:
QlikView and Qlik Sense files are like ZIP file, as in they are highly compressed. So obtaining an estimate of how much RAM is needed for loading Apps into memory (footprint) is difficult to provide across the board. The expected memory usage associated with the app can also depend on how many users access the app and how much they are used.
An estimate of the RAM needed per app can be built on the below, but for accuracy always test by loading the app into memory and using the Qlik Scalability Tools to obtain a baseline of memory usage for each app as it is accessed by the foreseeable number of users.
Telemetry logging which allows for using the Telemetry Dashboard, is also an available suitable tool.
Since the release of the February 2019 version, Sense System Performance Analyzer monitoring App can be used to determine app footprint as well. Since the release of the June 2018 version, App Metadata Analyzer monitoring App can also be used. However, these last three may not provide the same data as the Scalability Tools.
An alternative is to use a test environment and simply observe RAM usage increases as apps are first opened (footprint), and as number of users accessing the app increase, then as number of operations are performed within the app. The test environment results for observed memory and CPU usage can be recorded as a baseline for the particular app in production, which assists in determining future sizing/scaling needs.
Need direct assistance in evaluating your Qlik Sense and QlikView apps? Qlik's Professional Services are available to assist you.
RAMInitial = SizeOnDisk × FileSizeMultiplier ; this is the initial RAM footprint for any application
FileSizeMultiplier: range between 2-10 (this is a compression* ratio depending on the data contained in the app)
*Compression is based upon the data, and how much we can compress depends upon the homogeneity of the data. The more homogeneous, the more compression Qlik can achieve.
More information on one way of optimizing a document can be found on the Qlik Design Blog: Symbol Tables and Bit-Stuffed Pointers
RAMperUser = RAMinitial × userRAMratio ; this is the RAM per each incremental user
userRAMratio: range between 1% -10%
Total RAM used per app :
TotalRAM = (RAMperUser × Number of users) + RAMinitial
Example:
SizeOnDisk = 1 GB
File Size Multiplier 6 (range is from 2 to 10) This is an example value. A value can be obtained by reviewing telemetry (how far does the app expand?) or opening the app in a QlikView or Qlik Sense desktop and measuring the expansion based on how large it grows in memory.
RAMinitial = 1 * 6 = 6 GB
If we take a RAM Ratio per User of 6% then it is 0.06 (range is from 1 to 10)
RAMperUser = 6 x 0.06 = 0.36GB
Then RAM Required for 30 Users
TotalRAM = (RAMperUser × No. users) + RAMinitial
TotalRAM = (0.36 * 30) + 6
TotalRAM = 16.8 GB
This Support Techspert Thursday session addresses:
- Difference between SaaS and Windows
- Different kinds of Alerts
- Troubleshooting tips
00:00 - Intro
01:00 - What is Qlik Alerting?
01:36 - How Alerting Works
02:58 - Licenses Capabilities
03:38 - Different Types of Alerts
05:13 - Enabling Alerting in Qlik Sense SaaS
05:49 - Creating Alerts in SaaS
07:32 - Setting up Qlik Alerting Button on Windows
08:33 - Fixing Certification error
10:00 - Creating Alertis on Windows
12:06 - Customized Notifications
13:23 - Syncing Users with Qlik Sense
14:01 - Changing Qlik Alerting Ports
15:59 - Using Dev Hub to change ports
17:15 - How to Troubleshoot Errors
18:23 - Searching for more info
19:01 - Creating System Alerts
19:53 - Alerting Log Files
21:12 - Setting up Monitoring App
23:50 - Documentation on Help.Qlik.Com
24:40 - Q & A
STT - Troubleshooting Qlik Alerting Setup
Articles on Support Knowledge Base
Q&A:
Q: Can we make App specific Data Job alerts (Success/Failure)?
A: Yes, if you would like to get an alert when a specific app has been reloaded successfully or otherwise has failed, then you can use “System alerts”
Q: From which Qliksense version onwards alerts are available?
A: According to the help page: Minimum recommended version of Qlik Sense Enterprise on Windows is February 2019.
Q: How can I get an alert if a QlikView job fails to load, or if an NPrinting job fails to execute?
A: Not possible, for now Qlik Alerting is only available to set it up with Qlik Sense, starting from QS February 2019 .
Q: Hello, I have a questions regarding the conditions. They seemed to only use operators, but can we apply filters or selections to the alert?
A: Yes, you can apply filters and conditions.
Q: In DATA alert, can you edit an ADDED MEASURE?
A: If you mean if you can edit a measure once it has been created, yes you can do it after from the QA web console.
Q: Is it mandatory to have different machines for Qlik Sense and Qlik Alerting?
A: Not mandatory but best practice is to have them in separate machines.
Q: Can you loop through Selections to test condition on each?
A: Yes, using filters and more advanced conditions, you can find some examples in our Help Page.
Q: Since it's included in SaaS, does that mean there's no added cost?
A: Yes, exactly, for Qlik Sense Enterprise SaaS there is no extra cost, but it is only available for SaaS Enterprise, not in Qlik Sense Business.
Q: Can Custom notifications be used to send alerts in another language?
A: Yes, sure, it can be sent in any language as they are custom notification so you only need to put whatever text you like.
Transcript:
Qlik ODBC connector package (database connector built-in Qlik Sense) fails to reload with error Connector reply error:
Executing non-SELECT queries is disabled. Please contact your system administrator to enable it.
The issue is observed when the query following SQL keyword is not SELECT, but another statement like INSERT, UPDATE, WITH .. AS or stored procedure call.
See the Qlik Sense February 2019 Release Notes for details on item QVXODBC-1406.
By default, non-SELECT queries are disabled in the Qlik ODBC Connector Package and users will get an error message indicating this if the query is present in the load script. In order to enable non-SELECT queries, allow-nonselect-queries setting should be set to True by the Qlik administrator.
To enable non-SELECT queries:
As we are modifying the configuration files, these files will be overwritten during an upgrade and will need to be made again.
Only apply !EXECUTE_NON_SELECT_QUERY if you use the default connector settings (such as bulk reader enabled and reading strategy "connector"). Applying !EXECUTE_NON_SELECT_QUERY to non-default settings may lead to unexpected reload results and/or error messages.
More details are documented in the Qlik ODBC Connector package help site.
Feature Request Delivered: Executing non-SELECT queries with Qlik Sense Business
Execute SQL Set statements or Non Select Queries
QlikView and Qlik Sense load either missing or additional zeros, compared to the values in the data source.
For example data like in the below script is loaded with incorrect leading zeros.
LOAD * Inline [
F1, F2
1, a
01, b
02, c
2, d
];
On the second row the leading zero is missing, and on the fourth row, there is an unexpected additional leading zero.
QlikView
Qlik Sense Enterprise on Windows
Qlik Cloud
The observed behaviour is a part of fundamental Qlik engine functionality and data compression technique.
In short, this means that Qlik interprets and associates loaded data by best effort. As part of Qlik optimization and compression technique the same reoccurring value in a field is stored on the first occurrence only, and the following occurrence reference to the first (stored) value. This means that two values with identical numerical representation can not be stored with two different textual presentations in the same field in Qlik.
Please keep in mind that all numerical values in Qlik act as dual values. This means that they have an underlying numerical value that is used for calculations, and a textual formatted value which is the value seen in charts or as calculations results.
In the example below four rows of data are loaded. In the field F1 there are four different value.
LOAD * Inline [
F1, F2
1, a
01, b
02, c
2, d
];
Identical numerical values are associated with the same textual presentation value in Qlik . For this reason, it is not possible to store the same numerical value with different textual presentation values.
One way to resolve this is to format the values as text by using Text() during reload.
LOAD
text(F1) as F1,
F2
Inline [
F1, F2
1, a
01, b
02, c
2, d
];
This will result in the visual values looking identical to the data source.
NOTE: Value formatted with Text() will not have underlying numerical values, hence calculations on these values is not possible.
Publishing an app in a Qlik Sense Enterprise on Windows (client-managed) environment may fail with the error:
Quota is exceeded
Reduce the size of files attached to the app. Alternatively, delete unnecessary files you have attached to it.
You can review what files you have attached to the app from the Qlik Sense Management Console:
The maximum file size of an individual file attached to an app is 50 MB, while the maximum total size of files attached to the app (including image files uploaded to the media library) is 200 MB.
See Attaching data files and adding the data to the app for details.
Attaching data files and adding the data to the app | Qlik Sense on Windows Help
Table of content:
If a Qlik Sense document uses Section Access to restrict user access, the following error may be seen during data load:
Access was denied after reload. Check that the user that reloads the script is included in the section access part of the script.
Multiple root causes and matching solutions exist:
Verify that the user executing the script has ADMIN access in the Section Access table.
All field data (such as userID, email) must be written in upper-case.
Make sure the column names are correct. If these are not matched, use an "as" prefix to adjust it.
Example: ACCESS, USERID, USER.EMAIL
LOAD ACCESS,
EMAIL as USER.EMAIL,
REDUCTION,
OMITGROUP;
SELECT ACCESS,
EMAIL,
REDUCTION,
OMITGROUP
The conclusions in this article were reached in collaboration with cjgorrin from the European Commission's Joint Research Centre Qlik Sense team.
With Qlik Sense's new feature, Chart-level scripts, the Replace prefix replaces all values in the HC1 table with a calculated value defined by the script.
Based on the Qlik Sense online documentation, using the attached CHART LEVEL SCRIPT_REPLACE RESIDENT load.qvf, we would expect the table to display the correct result regardless if an as (alias statement) is used or not.
Example One: Even if "as" is not used in the REPLACE statement, the error Load statement with star ('*') not supported in hypercube is displayed.
REPLACE LOAD
MyDim1,
MyDim2,
MyMeasure1,
MyMeasure2
RESIDENT HC1;
Example Two: If "as" is used in the REPLACE statement, no error is displayed but all rows are loaded with the same values. The values should remain unchanged.
REPLACE LOAD
MyDim1 as MyDim1,
MyDim2 as MyDim2,
MyMeasure1 as MyMeasure1,
MyMeasure2 as MyMeasure2
RESIDENT HC1;
This issue is caused by QB-27902, which will be resolved in an upcoming release of Qlik Sense Enterprise on Windows. Monitor the Release Notes for details.
REPLACE LOAD when used in a dynamic chart-level script is using only one row for the source data regardless of the actual number of source rows. It also incorrectly added rows to the chart.
QB-27902
Loading a data file from OneDrive may fail with the following error:
Cannot open the following file: 'Failed on attempt 1 to GET. (unauthenticated, Unauthenticated). Check to confirm that the file is available and that you have permission to access it.
Not all users are affected.
This is caused by QB-26980. This defect was resolved in Qlik Cloud during a September update.
If you encounter the problem in Qlik Sense Enterprise on-premise, upgrade to the the Qlik Sense Enterprise on Windows November 2024 release or any later version.
Information provided on this defect is given as is at the time of documenting. For up-to-date information, please review the most recent Release Notes with the ID QB-26980 for reference.
This involves a request to a pre-authenticated download URL and uses the Range header: Partial range downloads
The Unauthenticated error is explained as The caller is not authenticated. For more information, see Detailed error codes (learn.microsoft.com).
Adding alternative measures or dimensions to a chart is expected to immediately update the chart. However, Qlik Sense May 2024 requires a page refresh before any changes are reflected correctly.
Earlier versions of Qlik Sense are not affected.
This is caused by QB-26786.
Refresh the page.
Upgrade to Qlik Sense Enterprise on Windows November 2024 or any later versions.
Information provided on this defect is given as is at the time of documenting. For up-to-date information, please review the most recent Release Notes, or contact support with the ID QB-26786 for reference.
In this example, we load data from an Excel file hosted on SharePoint 365 using the Qlik Office 365 Sharepoint connector.
Environment:
For our example, we are using Qlik Sense Enterprise on Windows and the installed Qlik Web Connector for Office 365 Sharepoint. For more information on the Office 365 Sharepoint Qlik Web Connectors and for installation instructions, see: Office 365 Sharepoint and Installation Web Connectors.
Links provided in these examples are example links, not real links.
The conclusions in this article were reached in collaboration with cjgorrin from the European Commission's Joint Research Centre Qlik Sense team.
With Qlik Sense's new feature, Chart-level scripts, Add prefix is used with LOAD to append values to the HC1 table, representing the hypercube computed by the Qlik associative engine.
Based on this documentation and using the attached CHART LEVEL SCRIPT_ADD RESIDENT Load.qvf, we would expect the table to have 12 entries (6 original and 6 new)
Example: as the hypercube already has 6 entries, we would expect 6 new entries to be added when using Add prefix.
ADD LOAD MyDim1 as MyDim1, MyDim2 as MyDim2, MyMeasure1*100 as MyMeasure1, MyMeasure2*1000 as MyMeasure2 RESIDENT HC1
The result only shows 6 rows, with only one of them being modified:
This is working as designed.
ADD LOAD RESIDENT will try to merge duplicate rows and the test cases expect this behavior.
To workaround this specific user case, add a blank space to one of the dimensions, as shown below:
ADD LOAD MyDim1&' ' as MyDim1, MyDim2 as MyDim2, MyMeasure1*100 as MyMeasure1, MyMeasure2*1000 as MyMeasure2 RESIDENT HC1;"
QB-27903
The conclusions in this article were reached in collaboration with cjgorrin from the European Commission's Joint Research Centre Qlik Sense team.
Based on Qlik Sense online documentation, a PUT statement can be used to access columns, rows i.e. to set a numeric value to the hypercube.
However, using a Dimension name in a PUT statement, the following error is thrown:
Load statement could not find target column [MyDim1] in hypercube
This is working as designed.
Put statements are not allowed to manipulate dimensions. The Qlik Sense online help will be updated to reflect this.
QB-27904